// License Notification
//======================================================
// Copyright (c) 2010 Channel Intelligence Inc.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// ======================================================




#if S3SOAP
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 


/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="AmazonS3SoapBinding", Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Result))]
public partial class AmazonS3 : System.Web.Services.Protocols.SoapHttpClientProtocol {
    
    private System.Threading.SendOrPostCallback CreateBucketOperationCompleted;
    
    private System.Threading.SendOrPostCallback DeleteBucketOperationCompleted;
    
    private System.Threading.SendOrPostCallback GetObjectAccessControlPolicyOperationCompleted;
    
    private System.Threading.SendOrPostCallback GetBucketAccessControlPolicyOperationCompleted;
    
    private System.Threading.SendOrPostCallback SetObjectAccessControlPolicyOperationCompleted;
    
    private System.Threading.SendOrPostCallback SetBucketAccessControlPolicyOperationCompleted;
    
    private System.Threading.SendOrPostCallback GetObjectOperationCompleted;
    
    private System.Threading.SendOrPostCallback GetObjectExtendedOperationCompleted;
    
    private System.Threading.SendOrPostCallback PutObjectOperationCompleted;
    
    private System.Threading.SendOrPostCallback PutObjectInlineOperationCompleted;
    
    private System.Threading.SendOrPostCallback DeleteObjectOperationCompleted;
    
    private System.Threading.SendOrPostCallback ListBucketOperationCompleted;
    
    private System.Threading.SendOrPostCallback ListAllMyBucketsOperationCompleted;
    
    private System.Threading.SendOrPostCallback GetBucketLoggingStatusOperationCompleted;
    
    private System.Threading.SendOrPostCallback SetBucketLoggingStatusOperationCompleted;
    
    /// <remarks/>
    public AmazonS3() {
        this.Url = "https://s3.amazonaws.com/soap";
    }
    
    /// <remarks/>
    public event CreateBucketCompletedEventHandler CreateBucketCompleted;
    
    /// <remarks/>
    public event DeleteBucketCompletedEventHandler DeleteBucketCompleted;
    
    /// <remarks/>
    public event GetObjectAccessControlPolicyCompletedEventHandler GetObjectAccessControlPolicyCompleted;
    
    /// <remarks/>
    public event GetBucketAccessControlPolicyCompletedEventHandler GetBucketAccessControlPolicyCompleted;
    
    /// <remarks/>
    public event SetObjectAccessControlPolicyCompletedEventHandler SetObjectAccessControlPolicyCompleted;
    
    /// <remarks/>
    public event SetBucketAccessControlPolicyCompletedEventHandler SetBucketAccessControlPolicyCompleted;
    
    /// <remarks/>
    public event GetObjectCompletedEventHandler GetObjectCompleted;
    
    /// <remarks/>
    public event GetObjectExtendedCompletedEventHandler GetObjectExtendedCompleted;
    
    /// <remarks/>
    public event PutObjectCompletedEventHandler PutObjectCompleted;
    
    /// <remarks/>
    public event PutObjectInlineCompletedEventHandler PutObjectInlineCompleted;
    
    /// <remarks/>
    public event DeleteObjectCompletedEventHandler DeleteObjectCompleted;
    
    /// <remarks/>
    public event ListBucketCompletedEventHandler ListBucketCompleted;
    
    /// <remarks/>
    public event ListAllMyBucketsCompletedEventHandler ListAllMyBucketsCompleted;
    
    /// <remarks/>
    public event GetBucketLoggingStatusCompletedEventHandler GetBucketLoggingStatusCompleted;
    
    /// <remarks/>
    public event SetBucketLoggingStatusCompletedEventHandler SetBucketLoggingStatusCompleted;
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("CreateBucketReturn")]
    public CreateBucketResult CreateBucket(string Bucket, [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature) {
        object[] results = this.Invoke("CreateBucket", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature});
        return ((CreateBucketResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginCreateBucket(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("CreateBucket", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature}, callback, asyncState);
    }
    
    /// <remarks/>
    public CreateBucketResult EndCreateBucket(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((CreateBucketResult)(results[0]));
    }
    
    /// <remarks/>
    public void CreateBucketAsync(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature) {
        this.CreateBucketAsync(Bucket, AccessControlList, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, null);
    }
    
    /// <remarks/>
    public void CreateBucketAsync(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, object userState) {
        if ((this.CreateBucketOperationCompleted == null)) {
            this.CreateBucketOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateBucketOperationCompleted);
        }
        this.InvokeAsync("CreateBucket", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature}, this.CreateBucketOperationCompleted, userState);
    }
    
    private void OnCreateBucketOperationCompleted(object arg) {
        if ((this.CreateBucketCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.CreateBucketCompleted(this, new CreateBucketCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("DeleteBucketResponse")]
    public Status DeleteBucket(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("DeleteBucket", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((Status)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginDeleteBucket(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("DeleteBucket", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public Status EndDeleteBucket(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((Status)(results[0]));
    }
    
    /// <remarks/>
    public void DeleteBucketAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.DeleteBucketAsync(Bucket, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void DeleteBucketAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.DeleteBucketOperationCompleted == null)) {
            this.DeleteBucketOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteBucketOperationCompleted);
        }
        this.InvokeAsync("DeleteBucket", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.DeleteBucketOperationCompleted, userState);
    }
    
    private void OnDeleteBucketOperationCompleted(object arg) {
        if ((this.DeleteBucketCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.DeleteBucketCompleted(this, new DeleteBucketCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("GetObjectAccessControlPolicyResponse")]
    public AccessControlPolicy GetObjectAccessControlPolicy(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("GetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((AccessControlPolicy)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginGetObjectAccessControlPolicy(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("GetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public AccessControlPolicy EndGetObjectAccessControlPolicy(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((AccessControlPolicy)(results[0]));
    }
    
    /// <remarks/>
    public void GetObjectAccessControlPolicyAsync(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.GetObjectAccessControlPolicyAsync(Bucket, Key, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void GetObjectAccessControlPolicyAsync(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.GetObjectAccessControlPolicyOperationCompleted == null)) {
            this.GetObjectAccessControlPolicyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetObjectAccessControlPolicyOperationCompleted);
        }
        this.InvokeAsync("GetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.GetObjectAccessControlPolicyOperationCompleted, userState);
    }
    
    private void OnGetObjectAccessControlPolicyOperationCompleted(object arg) {
        if ((this.GetObjectAccessControlPolicyCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.GetObjectAccessControlPolicyCompleted(this, new GetObjectAccessControlPolicyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("GetBucketAccessControlPolicyResponse")]
    public AccessControlPolicy GetBucketAccessControlPolicy(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("GetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((AccessControlPolicy)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginGetBucketAccessControlPolicy(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("GetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public AccessControlPolicy EndGetBucketAccessControlPolicy(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((AccessControlPolicy)(results[0]));
    }
    
    /// <remarks/>
    public void GetBucketAccessControlPolicyAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.GetBucketAccessControlPolicyAsync(Bucket, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void GetBucketAccessControlPolicyAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.GetBucketAccessControlPolicyOperationCompleted == null)) {
            this.GetBucketAccessControlPolicyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBucketAccessControlPolicyOperationCompleted);
        }
        this.InvokeAsync("GetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.GetBucketAccessControlPolicyOperationCompleted, userState);
    }
    
    private void OnGetBucketAccessControlPolicyOperationCompleted(object arg) {
        if ((this.GetBucketAccessControlPolicyCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.GetBucketAccessControlPolicyCompleted(this, new GetBucketAccessControlPolicyCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public void SetObjectAccessControlPolicy(string Bucket, string Key, [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        this.Invoke("SetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginSetObjectAccessControlPolicy(string Bucket, string Key, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("SetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public void EndSetObjectAccessControlPolicy(System.IAsyncResult asyncResult) {
        this.EndInvoke(asyncResult);
    }
    
    /// <remarks/>
    public void SetObjectAccessControlPolicyAsync(string Bucket, string Key, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.SetObjectAccessControlPolicyAsync(Bucket, Key, AccessControlList, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void SetObjectAccessControlPolicyAsync(string Bucket, string Key, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.SetObjectAccessControlPolicyOperationCompleted == null)) {
            this.SetObjectAccessControlPolicyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetObjectAccessControlPolicyOperationCompleted);
        }
        this.InvokeAsync("SetObjectAccessControlPolicy", new object[] {
                    Bucket,
                    Key,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.SetObjectAccessControlPolicyOperationCompleted, userState);
    }
    
    private void OnSetObjectAccessControlPolicyOperationCompleted(object arg) {
        if ((this.SetObjectAccessControlPolicyCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.SetObjectAccessControlPolicyCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public void SetBucketAccessControlPolicy(string Bucket, [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        this.Invoke("SetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginSetBucketAccessControlPolicy(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("SetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public void EndSetBucketAccessControlPolicy(System.IAsyncResult asyncResult) {
        this.EndInvoke(asyncResult);
    }
    
    /// <remarks/>
    public void SetBucketAccessControlPolicyAsync(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.SetBucketAccessControlPolicyAsync(Bucket, AccessControlList, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void SetBucketAccessControlPolicyAsync(string Bucket, Grant[] AccessControlList, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.SetBucketAccessControlPolicyOperationCompleted == null)) {
            this.SetBucketAccessControlPolicyOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetBucketAccessControlPolicyOperationCompleted);
        }
        this.InvokeAsync("SetBucketAccessControlPolicy", new object[] {
                    Bucket,
                    AccessControlList,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.SetBucketAccessControlPolicyOperationCompleted, userState);
    }
    
    private void OnSetBucketAccessControlPolicyOperationCompleted(object arg) {
        if ((this.SetBucketAccessControlPolicyCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.SetBucketAccessControlPolicyCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("GetObjectResponse")]
    public GetObjectResult GetObject(string Bucket, string Key, bool GetMetadata, bool GetData, bool InlineData, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("GetObject", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((GetObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginGetObject(string Bucket, string Key, bool GetMetadata, bool GetData, bool InlineData, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("GetObject", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public GetObjectResult EndGetObject(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((GetObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public void GetObjectAsync(string Bucket, string Key, bool GetMetadata, bool GetData, bool InlineData, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.GetObjectAsync(Bucket, Key, GetMetadata, GetData, InlineData, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void GetObjectAsync(string Bucket, string Key, bool GetMetadata, bool GetData, bool InlineData, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.GetObjectOperationCompleted == null)) {
            this.GetObjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetObjectOperationCompleted);
        }
        this.InvokeAsync("GetObject", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.GetObjectOperationCompleted, userState);
    }
    
    private void OnGetObjectOperationCompleted(object arg) {
        if ((this.GetObjectCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.GetObjectCompleted(this, new GetObjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("GetObjectResponse")]
    public GetObjectResult GetObjectExtended(
                string Bucket, 
                string Key, 
                bool GetMetadata, 
                bool GetData, 
                bool InlineData, 
                long ByteRangeStart, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool ByteRangeStartSpecified, 
                long ByteRangeEnd, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool ByteRangeEndSpecified, 
                System.DateTime IfModifiedSince, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool IfModifiedSinceSpecified, 
                System.DateTime IfUnmodifiedSince, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool IfUnmodifiedSinceSpecified, 
                [System.Xml.Serialization.XmlElementAttribute("IfMatch")] string[] IfMatch, 
                [System.Xml.Serialization.XmlElementAttribute("IfNoneMatch")] string[] IfNoneMatch, 
                bool ReturnCompleteObjectOnConditionFailure, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool ReturnCompleteObjectOnConditionFailureSpecified, 
                string AWSAccessKeyId, 
                System.DateTime Timestamp, 
                [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, 
                string Signature, 
                string Credential) {
        object[] results = this.Invoke("GetObjectExtended", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    ByteRangeStart,
                    ByteRangeStartSpecified,
                    ByteRangeEnd,
                    ByteRangeEndSpecified,
                    IfModifiedSince,
                    IfModifiedSinceSpecified,
                    IfUnmodifiedSince,
                    IfUnmodifiedSinceSpecified,
                    IfMatch,
                    IfNoneMatch,
                    ReturnCompleteObjectOnConditionFailure,
                    ReturnCompleteObjectOnConditionFailureSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((GetObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginGetObjectExtended(
                string Bucket, 
                string Key, 
                bool GetMetadata, 
                bool GetData, 
                bool InlineData, 
                long ByteRangeStart, 
                bool ByteRangeStartSpecified, 
                long ByteRangeEnd, 
                bool ByteRangeEndSpecified, 
                System.DateTime IfModifiedSince, 
                bool IfModifiedSinceSpecified, 
                System.DateTime IfUnmodifiedSince, 
                bool IfUnmodifiedSinceSpecified, 
                string[] IfMatch, 
                string[] IfNoneMatch, 
                bool ReturnCompleteObjectOnConditionFailure, 
                bool ReturnCompleteObjectOnConditionFailureSpecified, 
                string AWSAccessKeyId, 
                System.DateTime Timestamp, 
                bool TimestampSpecified, 
                string Signature, 
                string Credential, 
                System.AsyncCallback callback, 
                object asyncState) {
        return this.BeginInvoke("GetObjectExtended", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    ByteRangeStart,
                    ByteRangeStartSpecified,
                    ByteRangeEnd,
                    ByteRangeEndSpecified,
                    IfModifiedSince,
                    IfModifiedSinceSpecified,
                    IfUnmodifiedSince,
                    IfUnmodifiedSinceSpecified,
                    IfMatch,
                    IfNoneMatch,
                    ReturnCompleteObjectOnConditionFailure,
                    ReturnCompleteObjectOnConditionFailureSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public GetObjectResult EndGetObjectExtended(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((GetObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public void GetObjectExtendedAsync(
                string Bucket, 
                string Key, 
                bool GetMetadata, 
                bool GetData, 
                bool InlineData, 
                long ByteRangeStart, 
                bool ByteRangeStartSpecified, 
                long ByteRangeEnd, 
                bool ByteRangeEndSpecified, 
                System.DateTime IfModifiedSince, 
                bool IfModifiedSinceSpecified, 
                System.DateTime IfUnmodifiedSince, 
                bool IfUnmodifiedSinceSpecified, 
                string[] IfMatch, 
                string[] IfNoneMatch, 
                bool ReturnCompleteObjectOnConditionFailure, 
                bool ReturnCompleteObjectOnConditionFailureSpecified, 
                string AWSAccessKeyId, 
                System.DateTime Timestamp, 
                bool TimestampSpecified, 
                string Signature, 
                string Credential) {
        this.GetObjectExtendedAsync(Bucket, Key, GetMetadata, GetData, InlineData, ByteRangeStart, ByteRangeStartSpecified, ByteRangeEnd, ByteRangeEndSpecified, IfModifiedSince, IfModifiedSinceSpecified, IfUnmodifiedSince, IfUnmodifiedSinceSpecified, IfMatch, IfNoneMatch, ReturnCompleteObjectOnConditionFailure, ReturnCompleteObjectOnConditionFailureSpecified, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void GetObjectExtendedAsync(
                string Bucket, 
                string Key, 
                bool GetMetadata, 
                bool GetData, 
                bool InlineData, 
                long ByteRangeStart, 
                bool ByteRangeStartSpecified, 
                long ByteRangeEnd, 
                bool ByteRangeEndSpecified, 
                System.DateTime IfModifiedSince, 
                bool IfModifiedSinceSpecified, 
                System.DateTime IfUnmodifiedSince, 
                bool IfUnmodifiedSinceSpecified, 
                string[] IfMatch, 
                string[] IfNoneMatch, 
                bool ReturnCompleteObjectOnConditionFailure, 
                bool ReturnCompleteObjectOnConditionFailureSpecified, 
                string AWSAccessKeyId, 
                System.DateTime Timestamp, 
                bool TimestampSpecified, 
                string Signature, 
                string Credential, 
                object userState) {
        if ((this.GetObjectExtendedOperationCompleted == null)) {
            this.GetObjectExtendedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetObjectExtendedOperationCompleted);
        }
        this.InvokeAsync("GetObjectExtended", new object[] {
                    Bucket,
                    Key,
                    GetMetadata,
                    GetData,
                    InlineData,
                    ByteRangeStart,
                    ByteRangeStartSpecified,
                    ByteRangeEnd,
                    ByteRangeEndSpecified,
                    IfModifiedSince,
                    IfModifiedSinceSpecified,
                    IfUnmodifiedSince,
                    IfUnmodifiedSinceSpecified,
                    IfMatch,
                    IfNoneMatch,
                    ReturnCompleteObjectOnConditionFailure,
                    ReturnCompleteObjectOnConditionFailureSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.GetObjectExtendedOperationCompleted, userState);
    }
    
    private void OnGetObjectExtendedOperationCompleted(object arg) {
        if ((this.GetObjectExtendedCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.GetObjectExtendedCompleted(this, new GetObjectExtendedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("PutObjectResponse")]
    public PutObjectResult PutObject(string Bucket, string Key, [System.Xml.Serialization.XmlElementAttribute("Metadata")] MetadataEntry[] Metadata, long ContentLength, [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] Grant[] AccessControlList, StorageClass StorageClass, [System.Xml.Serialization.XmlIgnoreAttribute()] bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("PutObject", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((PutObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginPutObject(string Bucket, string Key, MetadataEntry[] Metadata, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("PutObject", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public PutObjectResult EndPutObject(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((PutObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public void PutObjectAsync(string Bucket, string Key, MetadataEntry[] Metadata, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.PutObjectAsync(Bucket, Key, Metadata, ContentLength, AccessControlList, StorageClass, StorageClassSpecified, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void PutObjectAsync(string Bucket, string Key, MetadataEntry[] Metadata, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.PutObjectOperationCompleted == null)) {
            this.PutObjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnPutObjectOperationCompleted);
        }
        this.InvokeAsync("PutObject", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.PutObjectOperationCompleted, userState);
    }
    
    private void OnPutObjectOperationCompleted(object arg) {
        if ((this.PutObjectCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.PutObjectCompleted(this, new PutObjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("PutObjectInlineResponse")]
    public PutObjectResult PutObjectInline(string Bucket, string Key, [System.Xml.Serialization.XmlElementAttribute("Metadata")] MetadataEntry[] Metadata, [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] Data, long ContentLength, [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)] Grant[] AccessControlList, StorageClass StorageClass, [System.Xml.Serialization.XmlIgnoreAttribute()] bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("PutObjectInline", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    Data,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((PutObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginPutObjectInline(string Bucket, string Key, MetadataEntry[] Metadata, byte[] Data, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("PutObjectInline", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    Data,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public PutObjectResult EndPutObjectInline(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((PutObjectResult)(results[0]));
    }
    
    /// <remarks/>
    public void PutObjectInlineAsync(string Bucket, string Key, MetadataEntry[] Metadata, byte[] Data, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.PutObjectInlineAsync(Bucket, Key, Metadata, Data, ContentLength, AccessControlList, StorageClass, StorageClassSpecified, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void PutObjectInlineAsync(string Bucket, string Key, MetadataEntry[] Metadata, byte[] Data, long ContentLength, Grant[] AccessControlList, StorageClass StorageClass, bool StorageClassSpecified, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.PutObjectInlineOperationCompleted == null)) {
            this.PutObjectInlineOperationCompleted = new System.Threading.SendOrPostCallback(this.OnPutObjectInlineOperationCompleted);
        }
        this.InvokeAsync("PutObjectInline", new object[] {
                    Bucket,
                    Key,
                    Metadata,
                    Data,
                    ContentLength,
                    AccessControlList,
                    StorageClass,
                    StorageClassSpecified,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.PutObjectInlineOperationCompleted, userState);
    }
    
    private void OnPutObjectInlineOperationCompleted(object arg) {
        if ((this.PutObjectInlineCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.PutObjectInlineCompleted(this, new PutObjectInlineCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("DeleteObjectResponse")]
    public Status DeleteObject(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("DeleteObject", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((Status)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginDeleteObject(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("DeleteObject", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public Status EndDeleteObject(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((Status)(results[0]));
    }
    
    /// <remarks/>
    public void DeleteObjectAsync(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.DeleteObjectAsync(Bucket, Key, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void DeleteObjectAsync(string Bucket, string Key, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.DeleteObjectOperationCompleted == null)) {
            this.DeleteObjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteObjectOperationCompleted);
        }
        this.InvokeAsync("DeleteObject", new object[] {
                    Bucket,
                    Key,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.DeleteObjectOperationCompleted, userState);
    }
    
    private void OnDeleteObjectOperationCompleted(object arg) {
        if ((this.DeleteObjectCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.DeleteObjectCompleted(this, new DeleteObjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("ListBucketResponse")]
    public ListBucketResult ListBucket(string Bucket, string Prefix, string Marker, int MaxKeys, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MaxKeysSpecified, string Delimiter, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("ListBucket", new object[] {
                    Bucket,
                    Prefix,
                    Marker,
                    MaxKeys,
                    MaxKeysSpecified,
                    Delimiter,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((ListBucketResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginListBucket(string Bucket, string Prefix, string Marker, int MaxKeys, bool MaxKeysSpecified, string Delimiter, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("ListBucket", new object[] {
                    Bucket,
                    Prefix,
                    Marker,
                    MaxKeys,
                    MaxKeysSpecified,
                    Delimiter,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public ListBucketResult EndListBucket(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((ListBucketResult)(results[0]));
    }
    
    /// <remarks/>
    public void ListBucketAsync(string Bucket, string Prefix, string Marker, int MaxKeys, bool MaxKeysSpecified, string Delimiter, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.ListBucketAsync(Bucket, Prefix, Marker, MaxKeys, MaxKeysSpecified, Delimiter, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void ListBucketAsync(string Bucket, string Prefix, string Marker, int MaxKeys, bool MaxKeysSpecified, string Delimiter, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.ListBucketOperationCompleted == null)) {
            this.ListBucketOperationCompleted = new System.Threading.SendOrPostCallback(this.OnListBucketOperationCompleted);
        }
        this.InvokeAsync("ListBucket", new object[] {
                    Bucket,
                    Prefix,
                    Marker,
                    MaxKeys,
                    MaxKeysSpecified,
                    Delimiter,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.ListBucketOperationCompleted, userState);
    }
    
    private void OnListBucketOperationCompleted(object arg) {
        if ((this.ListBucketCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.ListBucketCompleted(this, new ListBucketCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("ListAllMyBucketsResponse")]
    public ListAllMyBucketsResult ListAllMyBuckets(string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature) {
        object[] results = this.Invoke("ListAllMyBuckets", new object[] {
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature});
        return ((ListAllMyBucketsResult)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginListAllMyBuckets(string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("ListAllMyBuckets", new object[] {
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature}, callback, asyncState);
    }
    
    /// <remarks/>
    public ListAllMyBucketsResult EndListAllMyBuckets(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((ListAllMyBucketsResult)(results[0]));
    }
    
    /// <remarks/>
    public void ListAllMyBucketsAsync(string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature) {
        this.ListAllMyBucketsAsync(AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, null);
    }
    
    /// <remarks/>
    public void ListAllMyBucketsAsync(string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, object userState) {
        if ((this.ListAllMyBucketsOperationCompleted == null)) {
            this.ListAllMyBucketsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnListAllMyBucketsOperationCompleted);
        }
        this.InvokeAsync("ListAllMyBuckets", new object[] {
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature}, this.ListAllMyBucketsOperationCompleted, userState);
    }
    
    private void OnListAllMyBucketsOperationCompleted(object arg) {
        if ((this.ListAllMyBucketsCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.ListAllMyBucketsCompleted(this, new ListAllMyBucketsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("GetBucketLoggingStatusResponse")]
    public BucketLoggingStatus GetBucketLoggingStatus(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential) {
        object[] results = this.Invoke("GetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential});
        return ((BucketLoggingStatus)(results[0]));
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginGetBucketLoggingStatus(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("GetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, callback, asyncState);
    }
    
    /// <remarks/>
    public BucketLoggingStatus EndGetBucketLoggingStatus(System.IAsyncResult asyncResult) {
        object[] results = this.EndInvoke(asyncResult);
        return ((BucketLoggingStatus)(results[0]));
    }
    
    /// <remarks/>
    public void GetBucketLoggingStatusAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential) {
        this.GetBucketLoggingStatusAsync(Bucket, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, null);
    }
    
    /// <remarks/>
    public void GetBucketLoggingStatusAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, object userState) {
        if ((this.GetBucketLoggingStatusOperationCompleted == null)) {
            this.GetBucketLoggingStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBucketLoggingStatusOperationCompleted);
        }
        this.InvokeAsync("GetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential}, this.GetBucketLoggingStatusOperationCompleted, userState);
    }
    
    private void OnGetBucketLoggingStatusOperationCompleted(object arg) {
        if ((this.GetBucketLoggingStatusCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.GetBucketLoggingStatusCompleted(this, new GetBucketLoggingStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://s3.amazonaws.com/doc/2006-03-01/", ResponseNamespace="http://s3.amazonaws.com/doc/2006-03-01/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public void SetBucketLoggingStatus(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, [System.Xml.Serialization.XmlIgnoreAttribute()] bool TimestampSpecified, string Signature, string Credential, BucketLoggingStatus BucketLoggingStatus) {
        this.Invoke("SetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential,
                    BucketLoggingStatus});
    }
    
    /// <remarks/>
    public System.IAsyncResult BeginSetBucketLoggingStatus(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, BucketLoggingStatus BucketLoggingStatus, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("SetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential,
                    BucketLoggingStatus}, callback, asyncState);
    }
    
    /// <remarks/>
    public void EndSetBucketLoggingStatus(System.IAsyncResult asyncResult) {
        this.EndInvoke(asyncResult);
    }
    
    /// <remarks/>
    public void SetBucketLoggingStatusAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, BucketLoggingStatus BucketLoggingStatus) {
        this.SetBucketLoggingStatusAsync(Bucket, AWSAccessKeyId, Timestamp, TimestampSpecified, Signature, Credential, BucketLoggingStatus, null);
    }
    
    /// <remarks/>
    public void SetBucketLoggingStatusAsync(string Bucket, string AWSAccessKeyId, System.DateTime Timestamp, bool TimestampSpecified, string Signature, string Credential, BucketLoggingStatus BucketLoggingStatus, object userState) {
        if ((this.SetBucketLoggingStatusOperationCompleted == null)) {
            this.SetBucketLoggingStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetBucketLoggingStatusOperationCompleted);
        }
        this.InvokeAsync("SetBucketLoggingStatus", new object[] {
                    Bucket,
                    AWSAccessKeyId,
                    Timestamp,
                    TimestampSpecified,
                    Signature,
                    Credential,
                    BucketLoggingStatus}, this.SetBucketLoggingStatusOperationCompleted, userState);
    }
    
    private void OnSetBucketLoggingStatusOperationCompleted(object arg) {
        if ((this.SetBucketLoggingStatusCompleted != null)) {
            System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
            this.SetBucketLoggingStatusCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
        }
    }
    
    /// <remarks/>
    public new void CancelAsync(object userState) {
        base.CancelAsync(userState);
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class Grant {
    
    private Grantee granteeField;
    
    private Permission permissionField;
    
    /// <remarks/>
    public Grantee Grantee {
        get {
            return this.granteeField;
        }
        set {
            this.granteeField = value;
        }
    }
    
    /// <remarks/>
    public Permission Permission {
        get {
            return this.permissionField;
        }
        set {
            this.permissionField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Group))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(User))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(CanonicalUser))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(AmazonCustomerByEmail))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public abstract partial class Grantee {
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class LoggingSettings {
    
    private string targetBucketField;
    
    private string targetPrefixField;
    
    /// <remarks/>
    public string TargetBucket {
        get {
            return this.targetBucketField;
        }
        set {
            this.targetBucketField = value;
        }
    }
    
    /// <remarks/>
    public string TargetPrefix {
        get {
            return this.targetPrefixField;
        }
        set {
            this.targetPrefixField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class BucketLoggingStatus {
    
    private LoggingSettings loggingEnabledField;
    
    /// <remarks/>
    public LoggingSettings LoggingEnabled {
        get {
            return this.loggingEnabledField;
        }
        set {
            this.loggingEnabledField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class ListAllMyBucketsEntry {
    
    private string nameField;
    
    private System.DateTime creationDateField;
    
    /// <remarks/>
    public string Name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    /// <remarks/>
    public System.DateTime CreationDate {
        get {
            return this.creationDateField;
        }
        set {
            this.creationDateField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class ListAllMyBucketsResult {
    
    private CanonicalUser ownerField;
    
    private ListAllMyBucketsEntry[] bucketsField;
    
    /// <remarks/>
    public CanonicalUser Owner {
        get {
            return this.ownerField;
        }
        set {
            this.ownerField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlArrayItemAttribute("Bucket", IsNullable=false)]
    public ListAllMyBucketsEntry[] Buckets {
        get {
            return this.bucketsField;
        }
        set {
            this.bucketsField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class CanonicalUser : User {
    
    private string idField;
    
    private string displayNameField;
    
    /// <remarks/>
    public string ID {
        get {
            return this.idField;
        }
        set {
            this.idField = value;
        }
    }
    
    /// <remarks/>
    public string DisplayName {
        get {
            return this.displayNameField;
        }
        set {
            this.displayNameField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlIncludeAttribute(typeof(CanonicalUser))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(AmazonCustomerByEmail))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public abstract partial class User : Grantee {
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class AmazonCustomerByEmail : User {
    
    private string emailAddressField;
    
    /// <remarks/>
    public string EmailAddress {
        get {
            return this.emailAddressField;
        }
        set {
            this.emailAddressField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class PrefixEntry {
    
    private string prefixField;
    
    /// <remarks/>
    public string Prefix {
        get {
            return this.prefixField;
        }
        set {
            this.prefixField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class ListEntry {
    
    private string keyField;
    
    private System.DateTime lastModifiedField;
    
    private string eTagField;
    
    private long sizeField;
    
    private CanonicalUser ownerField;
    
    private StorageClass storageClassField;
    
    /// <remarks/>
    public string Key {
        get {
            return this.keyField;
        }
        set {
            this.keyField = value;
        }
    }
    
    /// <remarks/>
    public System.DateTime LastModified {
        get {
            return this.lastModifiedField;
        }
        set {
            this.lastModifiedField = value;
        }
    }
    
    /// <remarks/>
    public string ETag {
        get {
            return this.eTagField;
        }
        set {
            this.eTagField = value;
        }
    }
    
    /// <remarks/>
    public long Size {
        get {
            return this.sizeField;
        }
        set {
            this.sizeField = value;
        }
    }
    
    /// <remarks/>
    public CanonicalUser Owner {
        get {
            return this.ownerField;
        }
        set {
            this.ownerField = value;
        }
    }
    
    /// <remarks/>
    public StorageClass StorageClass {
        get {
            return this.storageClassField;
        }
        set {
            this.storageClassField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public enum StorageClass {
    
    /// <remarks/>
    STANDARD,
    
    /// <remarks/>
    UNKNOWN,
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class ListBucketResult {
    
    private MetadataEntry[] metadataField;
    
    private string nameField;
    
    private string prefixField;
    
    private string markerField;
    
    private string nextMarkerField;
    
    private int maxKeysField;
    
    private string delimiterField;
    
    private bool isTruncatedField;
    
    private ListEntry[] contentsField;
    
    private PrefixEntry[] commonPrefixesField;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Metadata")]
    public MetadataEntry[] Metadata {
        get {
            return this.metadataField;
        }
        set {
            this.metadataField = value;
        }
    }
    
    /// <remarks/>
    public string Name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    /// <remarks/>
    public string Prefix {
        get {
            return this.prefixField;
        }
        set {
            this.prefixField = value;
        }
    }
    
    /// <remarks/>
    public string Marker {
        get {
            return this.markerField;
        }
        set {
            this.markerField = value;
        }
    }
    
    /// <remarks/>
    public string NextMarker {
        get {
            return this.nextMarkerField;
        }
        set {
            this.nextMarkerField = value;
        }
    }
    
    /// <remarks/>
    public int MaxKeys {
        get {
            return this.maxKeysField;
        }
        set {
            this.maxKeysField = value;
        }
    }
    
    /// <remarks/>
    public string Delimiter {
        get {
            return this.delimiterField;
        }
        set {
            this.delimiterField = value;
        }
    }
    
    /// <remarks/>
    public bool IsTruncated {
        get {
            return this.isTruncatedField;
        }
        set {
            this.isTruncatedField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Contents")]
    public ListEntry[] Contents {
        get {
            return this.contentsField;
        }
        set {
            this.contentsField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("CommonPrefixes")]
    public PrefixEntry[] CommonPrefixes {
        get {
            return this.commonPrefixesField;
        }
        set {
            this.commonPrefixesField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class MetadataEntry {
    
    private string nameField;
    
    private string valueField;
    
    /// <remarks/>
    public string Name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }
    
    /// <remarks/>
    public string Value {
        get {
            return this.valueField;
        }
        set {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class PutObjectResult {
    
    private string eTagField;
    
    private System.DateTime lastModifiedField;
    
    /// <remarks/>
    public string ETag {
        get {
            return this.eTagField;
        }
        set {
            this.eTagField = value;
        }
    }
    
    /// <remarks/>
    public System.DateTime LastModified {
        get {
            return this.lastModifiedField;
        }
        set {
            this.lastModifiedField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlIncludeAttribute(typeof(GetObjectResult))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class Result {
    
    private Status statusField;
    
    /// <remarks/>
    public Status Status {
        get {
            return this.statusField;
        }
        set {
            this.statusField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class Status {
    
    private int codeField;
    
    private string descriptionField;
    
    /// <remarks/>
    public int Code {
        get {
            return this.codeField;
        }
        set {
            this.codeField = value;
        }
    }
    
    /// <remarks/>
    public string Description {
        get {
            return this.descriptionField;
        }
        set {
            this.descriptionField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class GetObjectResult : Result {
    
    private MetadataEntry[] metadataField;
    
    private byte[] dataField;
    
    private System.DateTime lastModifiedField;
    
    private string eTagField;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("Metadata")]
    public MetadataEntry[] Metadata {
        get {
            return this.metadataField;
        }
        set {
            this.metadataField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", IsNullable=true)]
    public byte[] Data {
        get {
            return this.dataField;
        }
        set {
            this.dataField = value;
        }
    }
    
    /// <remarks/>
    public System.DateTime LastModified {
        get {
            return this.lastModifiedField;
        }
        set {
            this.lastModifiedField = value;
        }
    }
    
    /// <remarks/>
    public string ETag {
        get {
            return this.eTagField;
        }
        set {
            this.eTagField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class AccessControlPolicy {
    
    private CanonicalUser ownerField;
    
    private Grant[] accessControlListField;
    
    /// <remarks/>
    public CanonicalUser Owner {
        get {
            return this.ownerField;
        }
        set {
            this.ownerField = value;
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
    public Grant[] AccessControlList {
        get {
            return this.accessControlListField;
        }
        set {
            this.accessControlListField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class CreateBucketResult {
    
    private string bucketNameField;
    
    /// <remarks/>
    public string BucketName {
        get {
            return this.bucketNameField;
        }
        set {
            this.bucketNameField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public partial class Group : Grantee {
    
    private string uRIField;
    
    /// <remarks/>
    public string URI {
        get {
            return this.uRIField;
        }
        set {
            this.uRIField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://s3.amazonaws.com/doc/2006-03-01/")]
public enum Permission {
    
    /// <remarks/>
    READ,
    
    /// <remarks/>
    WRITE,
    
    /// <remarks/>
    READ_ACP,
    
    /// <remarks/>
    WRITE_ACP,
    
    /// <remarks/>
    FULL_CONTROL,
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateBucketCompletedEventHandler(object sender, CreateBucketCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class CreateBucketCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal CreateBucketCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public CreateBucketResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((CreateBucketResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteBucketCompletedEventHandler(object sender, DeleteBucketCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteBucketCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal DeleteBucketCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public Status Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((Status)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetObjectAccessControlPolicyCompletedEventHandler(object sender, GetObjectAccessControlPolicyCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetObjectAccessControlPolicyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal GetObjectAccessControlPolicyCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public AccessControlPolicy Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((AccessControlPolicy)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetBucketAccessControlPolicyCompletedEventHandler(object sender, GetBucketAccessControlPolicyCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetBucketAccessControlPolicyCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal GetBucketAccessControlPolicyCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public AccessControlPolicy Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((AccessControlPolicy)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetObjectAccessControlPolicyCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetBucketAccessControlPolicyCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetObjectCompletedEventHandler(object sender, GetObjectCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetObjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal GetObjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public GetObjectResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((GetObjectResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetObjectExtendedCompletedEventHandler(object sender, GetObjectExtendedCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetObjectExtendedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal GetObjectExtendedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public GetObjectResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((GetObjectResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void PutObjectCompletedEventHandler(object sender, PutObjectCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class PutObjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal PutObjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public PutObjectResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((PutObjectResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void PutObjectInlineCompletedEventHandler(object sender, PutObjectInlineCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class PutObjectInlineCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal PutObjectInlineCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public PutObjectResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((PutObjectResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void DeleteObjectCompletedEventHandler(object sender, DeleteObjectCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class DeleteObjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal DeleteObjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public Status Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((Status)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void ListBucketCompletedEventHandler(object sender, ListBucketCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ListBucketCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal ListBucketCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public ListBucketResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((ListBucketResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void ListAllMyBucketsCompletedEventHandler(object sender, ListAllMyBucketsCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ListAllMyBucketsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal ListAllMyBucketsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public ListAllMyBucketsResult Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((ListAllMyBucketsResult)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void GetBucketLoggingStatusCompletedEventHandler(object sender, GetBucketLoggingStatusCompletedEventArgs e);

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetBucketLoggingStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
    
    private object[] results;
    
    internal GetBucketLoggingStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState) {
        this.results = results;
    }
    
    /// <remarks/>
    public BucketLoggingStatus Result {
        get {
            this.RaiseExceptionIfNecessary();
            return ((BucketLoggingStatus)(this.results[0]));
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetBucketLoggingStatusCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
#endif